package com.sheng.leetcode.year2025.month08.day13;

import org.junit.Test;

/**
 * @author by ls
 * @date 2025/8/13
 * <p>
 * 326. 3 的幂<p>
 * <p>
 * 给定一个整数，写一个函数来判断它是否是 3 的幂次方。如果是，返回 true ；否则，返回 false 。<p>
 * 整数 n 是 3 的幂次方需满足：存在整数 x 使得 n == 3^x<p>
 * <p>
 * 示例 1：<p>
 * 输入：n = 27<p>
 * 输出：true<p>
 * <p>
 * 示例 2：<p>
 * 输入：n = 0<p>
 * 输出：false<p>
 * <p>
 * 示例 3：<p>
 * 输入：n = 9<p>
 * 输出：true<p>
 * <p>
 * 示例 4：<p>
 * 输入：n = 45<p>
 * 输出：false<p>
 * <p>
 * 提示：<p>
 * -2^31 <= n <= 2^31 - 1<p>
 */
public class LeetCode0326 {

    @Test
    public void test() {
//        int n = 27;
//        int n = 0;
//        int n = 9;
        int n = 45;
        System.out.println(new Solution().isPowerOfThree(n));
    }
}

class Solution {
    public boolean isPowerOfThree(int n) {
        if (n <= 0) return false;
        while (n > 1) {
            if (n % 3 != 0) {
                return false;
            }
            n /= 3;
        }
        return true;
    }
}
